package com.bmob.lover.data.model.bean

import android.os.Parcelable
import com.theone.mvvm.base.appContext
import com.theone.common.ext.getVersionCode
import com.theone.mvvm.core.base.callback.IApkUpdate
import kotlinx.parcelize.Parcelize

//  ┏┓　　　┏┓
//┏┛┻━━━┛┻┓
//┃　　　　　　　┃
//┃　　　━　　　┃
//┃　┳┛　┗┳　┃
//┃　　　　　　　┃
//┃　　　┻　　　┃
//┃　　　　　　　┃
//┗━┓　　　┏━┛
//    ┃　　　┃                  神兽保佑
//    ┃　　　┃                  永无BUG！
//    ┃　　　┗━━━┓
//    ┃　　　　　　　┣┓
//    ┃　　　　　　　┏┛
//    ┗┓┓┏━┳┓┏┛
//      ┃┫┫　┃┫┫
//      ┗┻┛　┗┻┛
/**
 * @author The one
 * @date 2021-05-08 11:25
 * @describe APP更新
 * @email 625805189@qq.com
 * @remark
 */
@Parcelize
data class Update(
    var versionCode: Int,
    var versionName: String? = "",
    var apkUrl: String,
    var updateInfo: String? = "",
    var updateFile: BmobFile? = null,
    var force: Int = 0
) : BmobBean(), IApkUpdate, Parcelable {

    override fun isNewVersion(): Boolean = versionCode > appContext.getVersionCode()

    override fun getAppVersionCode(): Int = versionCode

    override fun isForceUpdate(): Boolean = force == 1

    override fun getAppVersionName(): String? = versionName
    override fun getAppApkUrl(): String {
        updateFile?.let {
            return it.url
        }
        return apkUrl
    }

    override fun getAppUpdateLog(): String? = updateInfo

    override fun getAppApkSize(): Long = 0
}